import {
  BUSINESS_LIST,
  SAVE_BUSINESS as SAVE_BUSINESS,
  CAR_MANAGE_LIST,
  CAR_IMPORT_INFO,
  CAR_DOWNLOAD_INFO,
  CREATE_FLEET,
  DELETE_FLEET,
  SAVE_FLEET,
  CAR_DETAILS,
  TRAILER_ALL_LIST,
  TRAILER_LIST,
  TRAILER_RECORD_LIST,
  TRAILER_DOWNLOAD_INFO,
  CREATE_TRAILER,
  SAVE_TRAILER,
  TRAILER_DETAILS,
  COLUMNS_LIST,
  DERIVER_ALL_LIST,
  SAVE_COLUMNS,
  SAVE_PAGE_SIZE,
  AREA_LIST,
  UPLOAD_IMG
} from "./api";
import { METHOD, request } from "@/utils/request";

/**
 * 获取企业信息
 * @param id 企业信息id
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getBusinessInfo(params) {
  return request(`${BUSINESS_LIST}/${params}`, METHOD.GET);
}

/**
 * 保存修改过的企业信息
 * @param params 提交企业信息
 * @returns {Promise<AxiosResponse<T>}
 */
export async function saveBusinessInfo(params) {
  return request(SAVE_BUSINESS, METHOD.POST, params);
}

/**
 * 图片上传
 * @param params 上传图片参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function uploadImg(params) {
  let obj = {
    file: params.file
  };
  return request(`${UPLOAD_IMG}/${params.category}`, METHOD.POST, obj);
}

/**
 * 获取省份列表接口
 * @param areaCode 地域code
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getArea(areaCode) {
  return request(`${AREA_LIST}/${areaCode}`, METHOD.GET);
}

/**
 * 获取车辆管理信息列表
 * @param params 车辆管理类信息参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getCarManageList(params) {
  return request(CAR_MANAGE_LIST, METHOD.POST, params);
}

/**
 * 删除车辆信息
 * @param params 删除车辆参数
 * @returns {Promise<AxiosResponse<T>}
 */
 export async function deleteFleet(params) {
  return request(`${DELETE_FLEET}/${params}`, METHOD.GET);
}

/**
 * 导入车辆理信息列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function importCarInfo(params) {
  return request(CAR_IMPORT_INFO, METHOD.GET, params);
}

/**
 * 导出车辆理信息列表
 * @param params 导出车辆管理类信息参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function downloadCarInfo(params) {
  return request(CAR_DOWNLOAD_INFO, METHOD.POST, params);
}

/**
 * 新增车辆信息
 * @param params 新增车辆参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function createFleet(params) {
  return request(CREATE_FLEET, METHOD.POST, params);
}

/**
 * 修改车辆信息
 * @param params 修改车辆参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function createUpdate(params) {
  return request(SAVE_FLEET, METHOD.POST, params);
}

/**
 * 获取车辆详情信息
 * @param params 获取详情参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getFleetDetails(params) {
  return request(`${CAR_DETAILS}/${params}`, METHOD.GET);
}

/**
 * 获取车辆详情 -- 所有的司机列表信息
 * @param params 获取详情参数
 * @returns {Promise<AxiosResponse<T>}
 */
 export async function getDeriverAllList(params) {
  return request(DERIVER_ALL_LIST, METHOD.POST, params);
}

// ---挂车管理 start ---
/**
 * 获取所有挂车
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getAllTrailerList(params) {
  return request(TRAILER_ALL_LIST, METHOD.POST, params);
}

/**
 * 获取卡车列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
 export async function getTrailerList(params) {
  return request(TRAILER_LIST, METHOD.GET, params);
}

/**
 * 导出挂车列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function downloadTrailerInfo(params) {
  return request(TRAILER_DOWNLOAD_INFO, METHOD.GET, params);
}

/**
 * 导出挂车列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getTrailerRecordList(params) {
  return request(TRAILER_RECORD_LIST, METHOD.GET, params);
}

/**
 * 查看挂车详情信息
 * @param params 获取挂车信息参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getTrailerDetails(params) {
  return request(TRAILER_DETAILS, METHOD.GET, params);
}

/**
 * 新增挂车信息
 * @param params 新增挂车参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function createTrailerInfo(params) {
  return request(CREATE_TRAILER, METHOD.POST, params);
}

/**
 * 修改挂车信息
 * @param params 修改挂车参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function saveTrailerInfo(params) {
  return request(SAVE_TRAILER, METHOD.POST, params);
}

// ---挂车管理 end ---

/**
 * 获取表头信息
 * @param params 页面对应表头参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getColumns(params) {
  return request(COLUMNS_LIST, METHOD.POST, params);
}

/**
 * 保存表头信息
 * @param params 配置表头信息
 * @returns {Promise<AxiosResponse<T>}
 */
export async function saveColumns(params) {
  return request(SAVE_COLUMNS, METHOD.POST, params);
}

/**
 * 保存页面页码信息
 * @param params 配置表头信息
 * @returns {Promise<AxiosResponse<T>}
 */
export async function savePageSize(params) {
  return request(SAVE_PAGE_SIZE, METHOD.POST, params);
}
